{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SymPy初识\n",
    "\n",
    "本教程假定读者已经了解Python编程语言的基础知识。 如果您不这样做，那么官方的Python教程非常出色。\n",
    "\n",
    "本教程假定您具有良好的数学背景。 大多数示例需要低于微积分级别的知识，有些示例需要微积分级别的知识。 一些高级功能需要的还不止这些。 如果遇到使用不熟悉的某些数学函数的部分，则可以跳过该部分，或将其替换为您更熟悉的类似函数。 或在Wikipedia上查找功能并学习新知识。 必要时将介绍一些不是常识的重要数学概念。\n",
    "\n",
    "### 安装\n",
    "\n",
    "pip3 install mpmath\n",
    "\n",
    "pip3 install sympy\n",
    "\n",
    "### 关于\n",
    "\n",
    "本教程旨在为从未使用过该库的人提供SymPy简介。本教程将介绍SymPy的许多功能，但是它们并不详尽。实际上，本教程中显示的几乎所有功能都将具有比所显示的更多的选项或功能。 SymPy文档的其余部分用作API文档，其中广泛列出了每个功能的每个功能和选项。\n",
    "\n",
    "这些是本教程的目标：\n",
    "\n",
    "- 为了提供指导，适合从未使用过SymPy（但是使用过Python并且知道必要数学知识的人）的人。\n",
    "\n",
    "- 以叙述形式编写，易于理解且有趣。它应该像一本书一样阅读。\n",
    "\n",
    "- 提供有启发性的例子和练习，以帮助读者学习并使之有趣。\n",
    "\n",
    "- 以逻辑顺序介绍概念。\n",
    "\n",
    "- 要使用好的做法和习惯用法，并避免使用反模式。避免使用倾向于导致反模式的功能或方法。没有显示仅对高级用户有用的功能。\n",
    "\n",
    "- 要保持一致。如果有多种方法，则仅显示最佳方法。\n",
    "\n",
    "- 为避免不必要的重复，假定已经阅读了本教程的前面各节。\n",
    "\n",
    "### 示例\n",
    "\n",
    "SymPy最简单的使用:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Eq(Integral(exp(x)*cos(x), x), exp(x)*sin(x)/2 + exp(x)*cos(x)/2)"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import symbols\n",
    "from sympy import Integral\n",
    "from sympy import cos\n",
    "from sympy import exp\n",
    "from sympy import Eq\n",
    "x = symbols('x')\n",
    "a = Integral(cos(x)*exp(x), x)\n",
    "Eq(a, a.doit())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "简化的写法: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Eq(Integral(exp(x)*cos(x), x), exp(x)*sin(x)/2 + exp(x)*cos(x)/2)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import *\n",
    "x = symbols('x')\n",
    "a = Integral(cos(x)*exp(x), x)\n",
    "Eq(a, a.doit())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
